#!/bin/bash

# 定义输入和输出文件
STRUCT_FILE="struct.txt"
OUTPUT_FILE="output.c"  # 指定输出文件

# 检查输入文件是否存在
if [ ! -f "$STRUCT_FILE" ]; then
    echo "Error: $STRUCT_FILE does not exist."
    exit 1
fi

# 读取struct.txt中的内容
STRUCT_CONTENT=$(cat "$STRUCT_FILE")

# 定义完整的.c文件内容
C_CONTENT=$(cat <<EOF
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    $STRUCT_CONTENT

    unsigned char *bytes = (unsigned char*)&myStruct1;
    printf("bytes: ");
    for (int i = 0; i < sizeof(myStruct1); ++i) {
        printf("%02x ", bytes[i]);
    }
    printf("\n");
    return 0;
}
EOF
)

# 将生成的.c文件内容写入指定的输出文件
echo "$C_CONTENT" > "$OUTPUT_FILE"

gcc $OUTPUT_FILE
./a.out
rm -f $OUTPUT_FILE;
rm -f a.out